Using Logic Programming and Coroutining for VLSI Design
نویسندگان
چکیده
We show how an extended Prolog can be exploited to implement different electronic CAD tools. Starting with a computer hardware description language (CHDL) several problems like digital circuit analysis, simulation and code generation for programmable microprocessors are discussed. For that purpose a part of the MIMOLA (machine independent micropro-gramming language) system MSS (MIMOLA hardware design system) is presented. Several advantages obtained by applying techniques of logic programming to solve problems in the area of integrated circuit design are shown. Especially maintenance, small source code, backtracking and the extension of standard Prolog by a coroutining mechanism to express Boolean constraints are pointed out. Due to the increasing complexity of digital circuits, the design process is supported by a lot of design tools covering a wide range of problems. A lot of these problems are of high complexity. Therefore electronic CAD systems, commonly written in imperative languages , consist of a very large amount of source code. Maintenance, portability and adaptability becomes a problem. We describe significant software engineering advantages by using Prolog for these problems. MIMOLA [BMSJ91] is a computer language with Pascal-like constructs. It supports design, test, simulation and programming of digital computers and is integrated into the CAD system MSS [Marw84]. MIMOLA, influenced by other hardware description languages like VHDL [IEEE92], allows structural and behavioral descriptions of circuits. Originally the complete system has been written in Pascal but onwards from MIMOLA 4.0 we started to redesign several tools using Prolog. Using the extended Prolog system ECLIPSE [ECRC92] new concepts to solve problems in the area of digital circuit design have been found. Corouti-ning, which allows the user to express a condition under which a call to a specified goal will be delayed, is a very useful mechanism to avoid unnecessary backtracking steps during simulation, test and code generation. Several approaches to digital circuit design using logic programming have been presented [Gull85, Cloc87, Simo89, DSH90], most of them concentrating on the gate level or even lower levels of abstraction. Only a few contributions consider higher levels of abstraction in the context of logic programming [Rein91, LWG91]. In this paper we describe the use of Prolog for a very high level of abstraction. An elegant simulator, based on a hardware description language is presented. The simulator is able to simulate a processor together with a given program. We also present a concept to generate microcode for a given hardware structure. Starting …
منابع مشابه
Application of Constraint Logic Programming for VLSI CAD Tools
This paper describes the application of CLP (constraint logic programming) to several digital circuit design problems. It is shown that logic programming together with efficient constraint propagation techniques is an adequate programming environment for complex real world problems like high level synthesis, simulation, code generation, and memory synthesis. Different types of constraints Boole...
متن کاملUsing Logic Programming and Coroutining for Electronic CAD
. We show how an extended Prolog can be exploited to implement di erent electronic CAD tools. Starting with a computer hardware description language (CHDL) several problems like digital circuit analysis, simulation, test generation and code generation for programmable microprocessors are discussed. For that purpose the MIMOLA (machine independent microprogramming language) system MSS (MIMOLA ha...
متن کاملBetter Late Than Never
Some Prolog systems are able to delay the execution of Prolog goals and resume it later. We were involved in the design, implementation and evaluation of several such systems and we summarise here our experiences with them. First we describe a general structure of such ’coroutining’ systems and then we concentrate on the particular features of and choices made in three ECRC’s logic programming ...
متن کاملA Design Methodology for Reliable MRF-Based Logic Gates
Probabilistic-based methods have been used for designing noise tolerant circuits recently. In these methods, however, there is not any reliability mechanism that is essential for nanometer digital VLSI circuits. In this paper, we propose a novel method for designing reliable probabilistic-based logic gates. The advantage of the proposed method in comparison with previous probabilistic-based met...
متن کاملTransforming Coroutining Logic Programs into Equivalent CHR Programs
We extend a technique called Compiling Control. The technique transforms coroutining logic programs into logic programs that, when executed under the standard left-to-right selection rule (and not using any delay features) have the same computational behavior as the coroutining program. In recent work, we revised Compiling Control and reformulated it as an instance of Abstract Conjunctive Parti...
متن کامل